TCP/IP协议及常见状态码(SYN,FIN,ACK,PSH,RST)

您所在的位置:网站首页 psh rst TCP/IP协议及常见状态码(SYN,FIN,ACK,PSH,RST)

TCP/IP协议及常见状态码(SYN,FIN,ACK,PSH,RST)

2024-07-16 01:29| 来源: 网络整理| 查看: 265

TCP/IP协议及常见状态码(SYN,FIN,ACK,PSH,RST) 1、TCP/IP协议2、TCP协议原理3、TCP报文格式4、三次握手的状态码

对于软件测试工程师、前后端工程师、网络工程师、运维工程师等都需要对计算机网络基础知识有一定的了解。 我最近也在系统学习计算机网络知识,为防自己忘记,特意把这几天在网上搜到的知识梳理起来,整理成一系列计算机网络知识,一方面可以使自己理解得更加透彻,另一方面也希望能帮助想要学习的你~

1、TCP/IP协议

TCP/IP协议(Transmission Control Protocol/Internet Protocol),中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。

TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构(应用层、传输层、网际层,网络接口层),每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。 ps:OSI模型分为七层,分别是应用层、表示层、会话层,传输层,网络层,数据链路层、物理层

2、TCP协议原理

TCP每发送一个报文段,便启动一个定时器,若在定时器超时之间还未收到ACK请求确认,就重传该报文,如图,数据包由A的缓冲区发往B,B在收到数据包之后,回发一个ACK确认包给A,之后将数据包从缓冲区释放。

因此,该数据包会一直缓冲在A的缓冲区,直到一个ACK确认为止。

3、TCP报文格式

TCP报文格式 下面介绍几个重要字段的含义

1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。 3)标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等。

标志位意义URG指示报文段里存在着被发送方的上层实体标记为”紧急”数据,当URG=1时,其后的紧急指针指示紧急数据在当前数据段中的位置(相对于当前序列号的字节偏移量),TCP接收方必须通知上层实体。ACK当ACK=0时,表示该数据段不包含确认信息,当ACK=1时,表示该报文段包括一个对已被成功接收报文段的确认。PSH当PSH=1时,接收方在收到数据后立即将数据交给上层,而不是直到整个缓冲区满。RST用于重置一个已经混乱的连接(如主崩溃),也可用于拒绝一个无效的数据段或者拒绝一个连接请求。一般而言,如果你得到的数据段被设置了RST位,那说明你这一端有问题了。SYN用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN=1和ACK=1。注:捎带是指对客户机到服务器数据的确认被装载在一个承载服务器到客户机的数据FIN用于释放一个连接,表示发送方已经没有数据要传输了。此时,接收方可能继续接收数据,好在SYN和FIN数据段都有序列号,从而保证了这两种数据段以正确顺序被处理 4、三次握手的状态码

SYN(Synchronize Sequence Number)同步序列号,表示建立连接; ACK(Acknowledgement)即确认字符,表示响应; FIN(Finish)表示关闭连接; PSH(Push)表示DATA数据传输; RST(Reset)表示重置

当SYN和ACK同时为1它表示的建立连接之后的响应;若只是单个SYN,表示的只是建立连接。

面试官经常问的三次握手就是通过这样的ACK表现出来的,可以看看我的关于[三次握手和四次挥手]



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3